#pragma once
/*
This class is going to hold all the relevant data for one cell of the map.
Primarily, it will be used to tell if a cell of the map is:  Visible, Mapped, Collideable/Passable, ect.

TODO:  Do this with bitflags.
*/
#include <stdio.h>
#include <Windows.h>
#include "Location.h"
#include "Colors.h"
enum TERRAIN_FLAGS
{
	VISIBLE =	0x01,
	MAPPED =	0x02,
	PASSABLE =	0x04,
	BLAH =		0x08,
	BLARG =		0x10,
};

class Map_Cell : public Location
{
private:
	char m_icon;		//The display icon for the terrain
	int m_color;		//The color of the icon
	int m_terrainFlags;	//bitflags for the various terrain bools we might want to check
public:
	//Constructor/Destructor
	Map_Cell();
	~Map_Cell();
	//Game Loop functions
	void draw();
	//Manipulators
	void setIcon(char a_char);		//Set the display icon for the terrain
	void setColor(int a_color);		//Set the display color for the terrain
	void setVisible(bool a_bool);	//Make visible or not
	void toggleVisible();
	void setMapped(bool a_bool);	//Make mapped or not
	void toggleMapped();
	void setPassable(bool a_bool);	//Make passable or not
	void togglePassable();
	//Accesors
	char getIcon();
	bool isVisible();
	bool isMapped();
	bool isPassable();
};